﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Project.Ycm20250401.Service
{
    /// <summary>
    /// 提供对储物柜功能操作的接口定义。
    /// </summary>
    public interface ICabinetFunction
    {
        /// <summary>
        /// 异步打开指定ID的储物柜门。
        /// </summary>
        /// <param name="cabinetId">要操作的储物柜的唯一标识符。</param>
        /// <returns>一个布尔值的Task，指示是否成功打开门。</returns>
        Task<bool> OpenDoorAsync(int cabinetId);

        /// <summary>
        /// 异步启动指定ID储物柜的加热功能，并设置加热温度。
        /// </summary>
        /// <param name="cabinetId">要操作的储物柜的唯一标识符。</param>
        /// <param name="temperature">需要设定的加热温度。</param>
        /// <returns>一个布尔值的Task，指示是否成功启动加热功能。</returns>
        Task<bool> StartHeatingAsync(int cabinetId, int temperature);

        /// <summary>
        /// 异步停止指定ID储物柜的加热功能。
        /// </summary>
        /// <param name="cabinetId">要操作的储物柜的唯一标识符。</param>
        /// <returns>一个布尔值的Task，指示是否成功停止加热功能。</returns>
        Task<bool> StopHeatingAsync(int cabinetId);

        /// <summary>
        /// 异步启动指定ID储物柜的消毒功能。
        /// </summary>
        /// <param name="cabinetId">要操作的储物柜的唯一标识符。</param>
        /// <returns>一个布尔值的Task，指示是否成功启动消毒功能。</returns>
        Task<bool> StartDisinfectionAsync(int cabinetId);

        /// <summary>
        /// 异步停止指定ID储物柜的消毒功能。
        /// </summary>
        /// <param name="cabinetId">要操作的储物柜的唯一标识符。</param>
        /// <returns>一个布尔值的Task，指示是否成功停止消毒功能。</returns>
        Task<bool> StopDisinfectionAsync(int cabinetId);
    }

}
